package game;

public abstract class TicTacToeBoard {
	
	//implement template method.  write two classes, one as stack, one as string.  
	
	public final static int X = 0;
	public final static int O = 1;
	public final static int EMPTY = -1; 
	
	public boolean gameOver = false; 
	
	public TicTacToeBoard(){		 
		createGrid();  
	}
	
	public final void placeMove(int s, int m){
		if(checkFree(s)){
			placeMove(s, m); 
		}
	}
	
	public abstract void createGrid(); 
	
	public abstract boolean checkFree(int s); 
	
	public abstract void reset(); 
	
	public abstract int getValue(int s); 
	
	protected abstract void makeMove(int s, int m); 

}